home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 01 (1982-09)(Softdisk)(Side B).zip / Softdisk Magazette Volume 2, No. 01 (1982-09)(Softdisk)(Side B).do / DECISION.MAKER.bas < prev    next >
BASIC Source File  |  1996-12-24  |  6KB  |  120 lines

  1. 10  HOME : POKE  -16298,0: POKE  -16368,0: GOSUB 1000
  2. 20  REM  A DECISION MAKER
  3. 30  CLEAR 
  4. 40  DIM F$(10),L$(10),F(10),M(10,10),V(10),Z(10): PRINT 
  5. 50  PRINT "OUT OF SEVERAL ALTERNATIVES."
  6. 60  CALL  -936: PRINT 
  7. 70  PRINT  TAB( 3)"*** COMPUTERIZED DECISION-MAKER ***"
  8. 80  PRINT : PRINT 
  9. 90 Y$ = "Y": PRINT "   I CAN HELP YOU MAKE DECISIONS BY"
  10. 100  PRINT "CHOOSING THE BEST POSSIBILITY FOR YOU"
  11. 110  PRINT "OUT OF SEVERAL ALTERNATIVES."
  12. 120  PRINT 
  13. 130  PRINT "ALL I NEED TO DO IS ORGANIZE INFORMATIONYOU ALREADY HAVE."
  14. 140  PRINT : PRINT "  WHICH OF THESE BEST DESCRIBES THE TYPEOF DECISION YOU HAVE TO MAKE?": PRINT 
  15. 150  PRINT "1-CHOOSE AN ITEM FROM SEVERAL ALTERNA-    TIVES."
  16. 160  PRINT "2-CHOOSE A COURSE OF ACTION FROM SEVERAL  ALTERNATIVES."
  17. 170  PRINT : INPUT "WHICH TYPE(1 OR 2) CHOICE DO YOU HAVE TOMAKE?";C
  18. 180  IF C <1  OR C >2  THEN 170
  19. 190  PRINT : IF C = 1  THEN  PRINT "   WHAT TYPE OF ITEM IS IT THAT YOU "
  20. 200  IF C = 1  THEN  PRINT "NEED TO DECIDE UPON?": INPUT S$
  21. 210  IF C = 2  THEN S$ = "COURSE OF ACTION"
  22. 220  PRINT : PRINT "I WILL NOW NEED A LIST OF EACH ";S$
  23. 230  PRINT "THAT YOU ARE CONSIDERING. PLEASE INPUT"
  24. 240  PRINT "THEM ONE AT A TIME. THE ORDER IS"
  25. 250  PRINT "OF NO PARTICULAR IMPORTANCE.": PRINT 
  26. 260  INPUT "FIRST, HOW MANY ARE THERE ALTOGETHER?";L0
  27. 270  IF L0 > = 2  AND L0 < = 10  THEN 290
  28. 280  GOSUB 970: GOTO 260
  29. 290  PRINT : FOR I = 1 TO L0: PRINT : PRINT "NUMBER ";I;", PLEASE."
  30. 300  INPUT L$(I): NEXT I: PRINT 
  31. 310  PRINT "O.K., THIS IS THE LIST UNDER CONSIDERA- TION": PRINT 
  32. 320  FOR I = 1 TO L0: PRINT I; TAB( 5);L$(I): NEXT I: PRINT : GOSUB 980
  33. 330  IF B$ < >Y$  THEN 220
  34. 340  PRINT : PRINT "   NOW, HOW MANY DIFFERENT FACTORS ARE"
  35. 350  PRINT "IMPORTANT TO YOU IN CHOOSING A ";S$;"?": INPUT F0
  36. 360  IF F0 >1  AND F0 <10  THEN 380
  37. 370  GOSUB 970: GOTO 340
  38. 380  PRINT : PRINT "  I NEED A LIST OF EACH OF THESE FACTORS "
  39. 390  FOR I = 1 TO F0: PRINT : PRINT "FACTOR NUMBER ";I: INPUT F$(I): NEXT 
  40. 400  CALL  -936
  41. 410  PRINT : PRINT "   NOW LOOK AT THE FOLLOWING LIST OF"
  42. 420  PRINT "FACTORS YOU HAVE PROVIDED AND DECIDE"
  43. 430  PRINT "WHICH IS THE MOST IMPORTANT TO YOU:"
  44. 440  PRINT : FOR I = 1 TO F0: PRINT I; TAB( 5);F$(I): NEXT 
  45. 450  PRINT : PRINT "   WHICH FACTOR (BY NUMBER) IS MOST     IMPORTANT?"
  46. 460  PRINT "(INPUT 0 IF YOU WISH TO CHANGE THE LIST) ": INPUT F2
  47. 470  IF F2 = 0  THEN 340
  48. 480  IF F2 <1  OR F2 >F0  THEN 450
  49. 490  PRINT : PRINT "   O.K., SUPPOSE WE HAVE A SCALE OF"
  50. 500  PRINT "IMPORTANCE THAT RANGES FROM 0 TO 10."
  51. 510  PRINT "LET'S SAY ";F$(F2);" HAS A VALUE OF 10,"
  52. 520  PRINT "SINCE IT IS AT THE TOP OF THE SCALE."
  53. 530  PRINT "ON THIS SCALE, WHAT VALUE WOULD"
  54. 540  PRINT "EACH OF THE OTHER FACTORS HAVE?"
  55. 550  PRINT "   (DECIMAL NUMBERS ARE O.K.)": PRINT : FOR I = 1 TO F0
  56. 560  IF I = F2  THEN 590
  57. 570  PRINT F$(I): INPUT F(I): IF F(I) >0  AND F(I) < = 10  THEN 590
  58. 580  PRINT "  YOUR INPUT IS NO GOOD. TRY AGAIN!": GOTO 570
  59. 590  NEXT :F(F2) = 10:C = 0: FOR I = 1 TO F0:C = C +F(I): NEXT : FOR I = 1 TO F0
  60. 600 F(I) = F(I)/C: NEXT : PRINT : PRINT "NOW CONSIDER HOW EACH ";S$
  61. 610  PRINT "RATES WITH RESPECT TO EACH OF THE"
  62. 620  PRINT "FACTORS. WE WILL CONSIDER EACH FACTOR"
  63. 630  PRINT "SEPARATELY AND THEN RATE EACH"
  64. 640  PRINT S$;" IN TERMS OF THAT FACTOR"
  65. 650  PRINT "ONLY.": PRINT 
  66. 660  PRINT "LET'S CONSIDER ";L$(1);" TO HAVE A"
  67. 670  PRINT "VALUE OF 10 ON EACH SCALE."
  68. 680  PRINT "THEN EVERY OTHER ";S$
  69. 690  PRINT "WILL BE GIVEN A NUMBER HIGHER OR LOWER"
  70. 700  PRINT "THAN 10 ACCORDING TO HOW MUCH BETTER"
  71. 710  PRINT "OR WORSE THAN ";L$(1);" YOU THINK IT IS.": FOR I = 1 TO F0: PRINT 
  72. 720  PRINT 
  73. 730  PRINT "CONSIDERING ";F$(I);" ONLY, AND"
  74. 740  PRINT "ASSUMING ";L$(1);" HAS A VALUE OF 10,"
  75. 750  PRINT "WHAT VALUE WOULD YOU GIVE TO EACH OF THEFOLLOWING:"
  76. 760  PRINT : FOR J = 2 TO L0
  77. 770  PRINT L$(J): INPUT M(J,I): IF M(J,I) > = 0  THEN 790
  78. 780  PRINT "  C'MON, NO NEGATIVE NUMBERS! TRY AGAIN.": GOTO 770
  79. 790  NEXT J: PRINT :M(1,I) = 10: NEXT I: FOR I = 1 TO F0:C = 0: FOR J = 1 TO L0
  80. 800 C = C +M(J,I): NEXT J: FOR J = 1 TO L0:M(J,I) = M(J,I)/C: NEXT J: NEXT I
  81. 810  FOR J = 1 TO L0:V(J) = 0: FOR I = 1 TO F0:V(J) = V(J) +M(J,I) *F(I)
  82. 820  NEXT I: NEXT J: FOR I = 1 TO 10:Z(I) = I: NEXT I:C = L0 -1: FOR J = 1 TO L0
  83. 830  FOR I = 1 TO C:N1 = Z(I):N2 = Z(I +1): IF V(N1) >V(N2)  THEN 850
  84. 840 Z(I +1) = N1:Z(I) = N2
  85. 850  NEXT I: NEXT J:C1 = Z(1):C2 = Z(2):C = 100/V(C1): FOR J = 1 TO L0
  86. 860 V(J) = C *V(J): NEXT : PRINT : PRINT :D = V(C1) -V(C2)
  87. 870  PRINT "  WELL, YOU BEST CHOICE SEEMS TO BE "
  88. 880  PRINT L$(C1);", ";
  89. 890  IF D <10  THEN  PRINT "BUT IT'S VERY CLOSE."
  90. 900  IF D <20  AND D > = 10  THEN  PRINT "BY A FAIR MARGIN."
  91. 910  IF D > = 20  THEN  PRINT "BY A GOOD-SIZED MARGIN."
  92. 920  PRINT : PRINT "HERE'S THE FINAL LIST WITH ";L$(C1)
  93. 930  PRINT "GIVEN A VALUE OF 100 AND THE OTHERS SET ACCORDINGLY:"
  94. 940  PRINT : PRINT : PRINT "RATING ",S$: FOR J = 1 TO L0:C = Z(J)
  95. 950  PRINT 
  96. 960  PRINT V(C),L$(C): NEXT : END 
  97. 970  PRINT "   THE NUMBER MUST BE BETWEEN 2 AND 10": RETURN 
  98. 980  INPUT "   IS THIS CORRECT (YES OR NO)?";A$
  99. 990 B$ =  LEFT$(A$,1): RETURN 
  100. 1000  CALL  -936: VTAB 5: PRINT "DECISION MAKER"
  101. 1010  PRINT : PRINT 
  102. 1020  PRINT 
  103. 1030  PRINT : PRINT : PRINT "HAVING A HARD TIME MAKING A DECISION?
  104. 1040  PRINT "LET YOUR APPLE HELP YOU."
  105. 1050  VTAB 21: PRINT "  PRESS 'ESC' TO END"
  106. 1060  VTAB 22: PRINT "< PRESS THE SPACE BAR TO CONTINUE...>"
  107. 1070  IF  PEEK( -16384) = 155  THEN 1100
  108. 1080  IF  PEEK( -16384) < >160  THEN 1060
  109. 1090  POKE  -16368,0: HOME : RETURN 
  110. 1100  POKE  -16368,0: HOME : VTAB 10: HTAB 10: PRINT "* * * THE  END * * *": END 
  111. 65535  REM  ********************
  112. 65535  REM  *                  *
  113. 65535  REM  *  CONTRIBUTED BY  *
  114. 65535  REM  *   THE KEYSTONE   *
  115. 65535  REM  *    APPLE CORE    *
  116. 65535  REM  *4644 CARLISLE PIKE*
  117. 65535  REM  *MECHANICSBURG,  PA*
  118. 65535  REM  *       17055      *
  119. 65535  REM  *                  *
  120. 65535  REM  ********************